From d041e1ba458e87a231d7210cdd093840ea9646e3 Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Mon, 31 Jul 2006 13:12:30 -0600 Subject: [PATCH] [IA64] rewrite of last util.c patch Rewrite utils.c patch to be less ugly: do not set area->phys_addr, recompute phys_addr in free_vm_area. Signed-off-by: Tristan Gingold --- linux-2.6-xen-sparse/arch/ia64/xen/util.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/ia64/xen/util.c b/linux-2.6-xen-sparse/arch/ia64/xen/util.c index 18a827c85a..cb75c504fc 100644 --- a/linux-2.6-xen-sparse/arch/ia64/xen/util.c +++ b/linux-2.6-xen-sparse/arch/ia64/xen/util.c @@ -54,7 +54,7 @@ struct vm_struct *alloc_vm_area(unsigned long size) area->size = size; area->pages = NULL; //XXX area->nr_pages = nr_pages; - area->phys_addr = __pa(virt); + area->phys_addr = 0; /* xenbus_map_ring_valloc uses this field! */ return area; @@ -70,15 +70,13 @@ void free_vm_area(struct vm_struct *area) { unsigned int order = get_order(area->size); unsigned long i; - - /* xenbus_map_ring_valloc overrides this field! */ - area->phys_addr = __pa(area->addr); + unsigned long phys_addr = __pa(area->addr); // This area is used for foreign page mappping. // So underlying machine page may not be assigned. for (i = 0; i < (1 << order); i++) { unsigned long ret; - unsigned long gpfn = (area->phys_addr >> PAGE_SHIFT) + i; + unsigned long gpfn = (phys_addr >> PAGE_SHIFT) + i; struct xen_memory_reservation reservation = { .nr_extents = 1, .address_bits = 0, -- 2.30.2